import java.util.ArrayList;
import java.util.List;

/**
 * -Xms10m -Xmx10m
 * 所以从这里就可以看到，在10M的堆内存中，用最简单的Object对象搞到老年代被塞满大概需要36万个对象。然后堆内存实在放不下任何其他对象，此时就会OutOfMemory了，而且告诉了你是Java heap
 * space，也就是堆空间发生了内存溢出的。
 */
public class HeadDemo {
    public static void main(String[] args) {
        long counter = 0;
        List<Object> list = new ArrayList<Object>();
        while (true) {
            list.add(new Object());
            System.out.println("创建第" + counter++ + "只猪！");
        }
    }

    /**
     * -Xms10m
     *
     * -Xmx10m
     *
     * -XX:+PrintGCDetails
     *
     * -Xloggc:gc.log
     *
     * -XX:+HeapDumpOnOutOfMemoryError
     *
     * -XX:HeapDumpPath=./
     *
     * -XX:+UseParNewGC
     *
     * -XX:+UseConcMarkSweepGC
     *
     * 导出内存快照，打开MAT查看异常
     */
}
